home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / utilreen / vmix / vmix278.exe / TECHREF.DOC < prev    next >
Text File  |  1991-12-13  |  82KB  |  3,498 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                              -------------------------
  11.                             |                         |
  12.                             |                         |
  13.                             |                         |
  14.                             |      V M i X  3 8 6     |
  15.                             |                         |
  16.                             |           for           |
  17.                             |                         |
  18.                             |    MSDOS Environments   |
  19.                             |                         |
  20.                             |                         |
  21.                             |                         |
  22.                             |    Multiuser Operating  |
  23.                             |        Supervisor       |
  24.                             |                         |
  25.                             |         for the         |
  26.                             |                         |
  27.                             |    I B M  PC / XT / AT  |
  28.                             |                         |
  29.                             |                         |
  30.                             |       Version 2.6X      |
  31.                             |                         |
  32.                             |    Technical Reference  |
  33.                              -------------------------
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.                                         By
  56.  
  57.                                  J. Anthony Borras
  58.                            Commercial Software Associates
  59.                                 Post Office Box  36
  60.                           Corona del Mar, California 92625
  61.                                   (714)  720-1214
  62.  
  63.                      IBM PC/XT/AT are trademarks of the IBM Corp.
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.                               This manual was written by:
  125.  
  126.  
  127.                              Commercial Software Associates
  128.                                    Post Office Box  36
  129.                             Corona del Mar, California 92625
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   COPYRIGHT NOTICE
  137.  
  138.                       Copyright (c) 1991 by: J. Anthony Borras
  139.                                  All rights reserved
  140.  
  141.                       No  part  of  this  program  or  related
  142.                       documentation may be copied, reproduced,
  143.                       stored   in   a   retrieval  system,  or
  144.                       transmitted in any  form or by any means
  145.                       electronic,   mechanical,   photocopied,
  146.                       recorded, or thereby translated into any
  147.                       language,   without  the  prior  written
  148.                       permission of  the publisher.    You may
  149.                       only  make  a copy  of  the program  for
  150.                       backup purposes.
  151.  
  152.  
  153.  
  154.                               LIMITED SHAREWARE LICENSE
  155.  
  156.                       VMiX 386  may  be  copied  for others to
  157.                       tryout, subject to the following copying
  158.                       restrictions   specified  by  this  time
  159.                       limited license:
  160.  
  161.                       All copies  distributed  to  others must
  162.                       include a  copy of the  Copyright Notice,
  163.                       the Limited Shareware License, Disclaimer
  164.                       of All  Warranties  and Liabilities, and
  165.                       Liabilities,  and  the  Software License
  166.                       Agreement.
  167.  
  168.  
  169.  
  170.                                    Disclaimer of
  171.                            All Warranties and Liabilities
  172.  
  173.                       Commercial Software (ComSoft) Associates
  174.                       makes no warranties, either expressed or
  175.                       implied,  with respect to this manual or
  176.                       to the software described there in,  its
  177.                       quality,  performance,  merchantability,
  178.                       or  fitness for any particular  purpose.
  179.                       VMiX 386 is  sold  or  licensed `as is',
  180.                       and   is   for  use  by   the   original
  181.                       purchaser  only,  except as expanded  by
  182.                       the Limited Shareware License  described
  183.                       above.   The  entire  risk,  as  to  the
  184.                       quality  and  performance,  of the  VMiX
  185.                       experimental  system is with the  buyer.
  186.                       In  the event of loss or damage   caused
  187.                       or alleged to be caused by the VMiX  386
  188.                       program, the buyer (and not ComSoft, its
  189.                       distributors,  or its retailers) assumes
  190.                       the   entire   cost  of  all   necessary
  191.                       servicing,  repair,  or correction   and
  192.                       any  incidental or consequential damages
  193.                       resulting   from  any  defect   in   the
  194.                       software or its use, even if ComSoft has
  195.                       been advised of the possibility of  such
  196.                       damages.
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                              SOFTWARE LICENSE AGREEMENT
  203.  
  204.  
  205.                       The party, agrees that they will use the
  206.                       software entitled `VMiX 386' exclusively
  207.                       for  their  private  use  in  their  own
  208.                       personal system,  not to exceed 3 CPU's.
  209.                       The  party agrees that all copies of the
  210.                       VMiX   386  software  package  are   the
  211.                       property    of    Commercial    Software
  212.                       Associates, Westwood California and that
  213.                       all  copies  will display  the  original
  214.                       copyright.
  215.  
  216.                       The party agrees that the location of all
  217.                       copies  will  be reported  to Commercial
  218.                       Software Associates upon  written demand.
  219.                       The licensee agrees to fill out and mail
  220.                       this  registration   form  and   license
  221.                       within 30 days of the start of the  try-
  222.                       out  period  specified  by  the  Limited
  223.                       Shareware License shown above.   Support
  224.                       will be provided to registered licensees
  225.                       only.
  226.  
  227.                       The  party agrees that  unauthorized use
  228.                       under this  agreement  will cause  great
  229.                       damage to  the licensor, Commercial Soft-
  230.                       ware Associates.
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                       ---------------------------------------
  272.                                                              |
  273.                                                              |
  274.                                                              |
  275.                                                              |
  276.                                                              |
  277.                         CONTENTS                             |
  278.                                                              |
  279.                                                              |
  280.                                                              |
  281.                                                              |
  282.                                                              |
  283.                       ---------------------------------------
  284.  
  285.  
  286.  
  287.  
  288.           INTRODUCTION                         Page
  289.  
  290.           Copyright Notice ...................   3
  291.           Software License Agreement .........   4
  292.           Table of Contents ..................   5
  293.           Quick Overview  ....................   7
  294.  
  295.           The Shell Commands ................. 1- 1
  296.                Command  1 - debug              1- 2
  297.                Command  2 - rshell             1- 3
  298.                Command  3 - remote             1- 4
  299.                Command  4 - swap               1- 6
  300.                Command  5 - chprio             1- 7
  301.                Command  6 - exec               1- 8
  302.                Command  7 - dosjob             1-10
  303.                Command  8 - spawn              1-11
  304.                Command  9 - kill               1-13
  305.                Command 10 - quit               1-14
  306.  
  307.           The Debugger Commands .............. 2- 1
  308.                Command  1 - assign             2- 2
  309.                Command  2 - deassign           2- 6
  310.                Command  3 - init               2- 7
  311.                Command  4 - examine            2- 8
  312.                Command  5 - set                2- 9
  313.  
  314.           The Utilities ...................... 3- 2
  315.                Utility  1 - ps                 3- 3
  316.                Utility  2 - dstat              3- 4
  317.                Utility  3 - dpath              3- 5
  318.                Utility  4 - loadup             3- 6
  319.                Utility  5 - outside            3- 7
  320.                Utility  6 - monitor            3- 8
  321.                Utility  7 - vsetup (.ini)      3-10
  322.                Utility  8 - vt                 3-13
  323.                Utility  9 - vw                 3-15
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                       ---------------------------------------
  338.                                                              |
  339.                                                              |
  340.                                                              |
  341.                                                              |
  342.                                                              |
  343.                         FIGURES:                             |
  344.                                                              |
  345.                                                              |
  346.                                                              |
  347.                                                              |
  348.                                                              |
  349.                       ---------------------------------------
  350.  
  351.  
  352.  
  353.            FIGURE     DESCRIPTION                    Page
  354.  
  355.            Fig. 1   Default Channel Assignments      1- 4
  356.                 2   Object type name definitions     2- 2
  357.                 3   Terminal Emulations Supported    2- 9
  358.                 4   Valid Baud Rates                 2-10
  359.                 5   Color Keys                       2-12
  360.                 6   Color Codes                      2-13
  361.                 7   Window Sizing Coordinates        2-14
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399. QUICK OVERVIEW
  400.  
  401.  
  402.    * VMiX provides the services of a multiuser operating system
  403.      supervisor.  The VMiX kernel ties tightly between the host
  404.      operating system I/O services and the user applications.
  405.      The goal of the VMiX kernel is to arbitrate the use of system
  406.      resources by individual tasks, in an environment providing up
  407.      to 16 megabytes of physical memory and virtualized devices.
  408.  
  409.    * The console screen can be automatically partitioned into up to
  410.      four windows, for a total of 4 tasks executing from the console.
  411.      The active task controls and responds to the console keyboard.
  412.      The active task can be switched, at any time, by pressing the
  413.      hot key, Shift-Tab.  In 386 mode, you can have fully virtualized
  414.      foregrounds, so each can be divided into up to four windows or
  415.      you can have full screen foregrounds ('dosjob -W') independent
  416.      from partitioned foregrounds.
  417.  
  418.    * VMiX does not need to operate in protected mode to multitask.
  419.      Hence, it can be used in 8088 PCs.  In 80286 mode, VMiX will
  420.      use protected mode only during task swapping.  In 80386 mode,
  421.      VMiX operates in protected mode at all times.  System services
  422.      are provided in SYSGATE.ASM to execute your own functions in
  423.      protected mode.
  424.  
  425.    * REMOTE permits a user to call a remote PC running VMiX, and
  426.      teleoperate, as if he were at the console of the remote PC.
  427.      Useful for remote customer support of application programs,
  428.      offsite login and operations.  VMiX terminal drivers provide
  429.      full CGA text mode emulation at a COMM port and will redirect
  430.      direct video writes when in 386 mode.
  431.  
  432.    * Multiple BASIC or GWBASIC interpreter sessions are supported.
  433.      Programs that write directly to video memory will also operate
  434.      from a COMM port when using VMiX in 386 mode.  In non-386
  435.      computers you need to use a remote host utility like 'Remote
  436.      Console'tm in conjunction with VMiX.  'Remote Console'tm is a
  437.      product of Louis Wheeler (805) 481-5687.
  438.  
  439.    * Supports a maximum of five users (only because of COMM port
  440.      limitations), each with multiple processes up to a maximum of
  441.      8 total.
  442.  
  443.    * SPAWN or '&' permits a script of VMiX shell commands to be
  444.      submitted to a background process executing the VMiX shell.
  445.      This allows for background jobs like compiling or printing by
  446.      a concurrent child process.
  447.  
  448.    * DOSJOB permits keyboard interactive applications to be
  449.      partitioned and managed as concurrent video display tasks.
  450.      The -W option allows a new task to use virtualized video memory
  451.      for their own separate display screen.  Their display screen
  452.      can be toggled to and from the foreground display.
  453.  
  454.    * VMiX supports graphics in CGA, MCGA, EGA, or VGA video modes.
  455.      Loadable fonts and up to 80 line displays (with VMiX font
  456.      type 1).
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.    * As explained in the manual, there are (5) five ways to execute
  466.      a DOS command, .BAT file, .COM file, or .EXE program:
  467.                      with 'exec' (now optional),
  468.                      with a command line trailing '&',
  469.                      with 'spawn -c ???? ...',
  470.                      with the 'dosjob [-W]' command,
  471.                   or (the easiest way) by pressing Shift-Enter
  472.                   at the end of your command line.
  473.  
  474.      When VMiX starts, unless you issued an 'exec -m<size in Kbytes>'
  475.      at the command line, VMiX will use memory partitions of 224Kb
  476.      for (8088/80286) programs or partitions of 576Kb in 386/486
  477.      processors.
  478.  
  479.    * Command line driven multitasking (default).
  480.      Optional pull-down menus user shell.
  481.      Optional VMiX.INI configuration file.
  482.  
  483.    * A remote session facility for linking two or more VMiX hosts.
  484.      Remote user access passwords.
  485.      Remote user program scripts.
  486.  
  487.    * Console operator status line 'set video -s'
  488.  
  489.    * Built-in debugger
  490.        'debug'
  491.        'monitor -f'
  492.        'monitor -r'
  493.  
  494.    * Memory manager and memory mapper
  495.        'monitor -m'
  496.        'monitor -p'
  497.        'examine mcb'
  498.        'examine memory'
  499.  
  500.    * A TSR load-hi utility for 386 mode.
  501.  
  502.    * User specified windows at either the console or VT-100 COMM
  503.      terminal, with direct video write support.
  504.  
  505.    * Assembly and High Level Language interface.
  506.      Interrupt 15h VMiX System Services.
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.       C O M S O F T                                           VMiX 386
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.                                   PART ONE
  544.  
  545.  
  546.                                   VMiX 386
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.                                   REFERENCE
  556.  
  557.  
  558.                               THE SHELL COMMANDS
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.       The Shell Commands                                      page 1-1
  594.  
  595.  
  596.       C O M S O F T                                           VMiX 386
  597.  
  598.  
  599.  
  600.  
  601.       NAME: debug
  602.       ____
  603.  
  604.       OUTLINE:
  605.       _______
  606.  
  607.       Purpose:  To invoke the VMiX debugger shell.
  608.       _______   This token is now obsolete, since all the debug
  609.                 commands can be invoked without the 'debug' prefix
  610.                 (from the Root Shell).
  611.  
  612.  
  613.       DESCRIPTION:
  614.       ___________
  615.  
  616.       debug is a root shell token.  This command has 6 sub-tokens:
  617.  
  618.       set, init, examine, assign, deassign, and quit. 
  619.  
  620.      'debug', by itself, invokes the VMiX debugger shell.  The
  621.       debugger shell prompt is  '- __________'.  Once in the debugger
  622.       shell, all the debug sub-tokens become first level tokens and
  623.       you do not have to preceed them with the token 'debug'.
  624.  
  625.       VMiX accepts numeric input in two forms, decimal or hexadecimal.
  626.       To enter hexadecimal numbers, preceede the number with the
  627.       characters '0x'.
  628.  
  629.       To return to the root shell, from the debugger use the token
  630.       'quit'.
  631.  
  632.       NOTE:  All six debugger sub-tokens can be used from the root
  633.       shell level, whether you precede them with the token 'debug',
  634.       or not.  If used with the prefix 'debug', you will moved to the
  635.       debugger shell when the current command completes.  Without the
  636.       prefix, you will remain at the root shell level.
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.       The Shell Commands                                      page 1-2
  660.  
  661.  
  662.       C O M S O F T                                           VMiX 386
  663.  
  664.  
  665.  
  666.  
  667.       NAME: rshell
  668.       ____
  669.  
  670.       OUTLINE:
  671.       _______
  672.  
  673.       Purpose:  To start a new VMiX/DOS command shell.
  674.       _______
  675.  
  676.  
  677.       DESCRIPTION:
  678.       ___________
  679.  
  680.       'rshell' is intended for use with the 'dosjob' command.  When
  681.       used with 'dosjob', a new process will be started and an rshell
  682.       will be used as the command interpreter, in other words a new
  683.       VMiX shell will be started.  The 'quit' command will close
  684.       the shell and terminate the process.
  685.  
  686.       When 'rshell' is used as a command, by itself, a new nested
  687.       shell will be started under the current VMiX shell.  The 'quit'
  688.       command will cause a return to the previous shell.
  689.  
  690.       You would use this command in VMiX.INI under the [remote
  691.       startup] Section, if you wished to have passwords checked
  692.       during a remote login (See VSETUP.EXE).
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.       The Shell Commands                                      page 1-3
  726.  
  727.  
  728.       C O M S O F T                                           VMiX 386
  729.  
  730.  
  731.  
  732.  
  733.       NAME: remote
  734.       ____
  735.  
  736.       OUTLINE:
  737.       _______
  738.  
  739.         -a  " toggles global polling ON/OFF"
  740.         -c  " sets remote console channel"
  741.         -i  " toggles fast RS232 ON/OFF"
  742.         -l  " sets terminal login channel"
  743.         -x  " toggles remote logins ON/OFF"
  744.  
  745.       Purpose:  To control your PC's remote serial capabilities via a
  746.       _______   modem or terminal connection.
  747.  
  748.  
  749.       DESCRIPTION:
  750.       ___________
  751.  
  752.       Normally, VMiX only polls the channel specified with the
  753.       'remote -l' command or the 'set remote -l' command for new
  754.       user logins.  The default channel is 1, equivalent to COM1.
  755.       Other tasks can be currently using other channels, this command
  756.       only affects which channel is currently being listened to for
  757.       new user logins.
  758.  
  759.       The 'remote -a' command is equivalent to the 'set remote -a'
  760.       command it tells VMiX to listen on all ports.  This slows the
  761.       scheduler, so it is not the default.
  762.  
  763.       The root shell command 'remote -c' will terminate VMiX, but
  764.       it first assigns STDIO to the channel specified after the -c
  765.       switch.  Therefore, MS-DOS resumes at the device associated
  766.       with the channel.  This command is different from the command
  767.       'set remote -c', which relocates the console but does not
  768.       terminate VMiX.
  769.  
  770.       Pressing <Ctrl> F from the terminal, followed by a <Ctrl> Z,
  771.       will effect an emergency return to the console video and
  772.       keyboard.  The correct way to return is to use the 'assign' to
  773.       PROCESS command and assign the process channel 0.
  774.  
  775.       The 'remote -i' command is used to toggle RS-232 communications
  776.       between polled or interrupt driven I/O.  When you 'set baud' for
  777.       a COMM channel above 9600 Baud, the serial port associated with
  778.       the channel will be automatically programmed for interrupt
  779.       driven I/O.  However, you must toggle interrupts TRUE, with
  780.       this command, if you want a baud rate below 19200 to use
  781.       interrupts.  In the few cases where you might want to use this
  782.       command, you must use it BEFORE you 'set baud'.
  783.  
  784.       The 'remote -l' command is equivalent to the 'set remote -l'
  785.       command.  Both set the currently polled channel for new logins.
  786.       Use 'examine status' to display the current assignment.
  787.  
  788.  
  789.  
  790.  
  791.       The Shell Commands                                      page 1-4
  792.  
  793.  
  794.       C O M S O F T                                           VMiX 386
  795.  
  796.  
  797.       The 'remote -x' command is equivalent to the 'set remote -x'
  798.       command.  They act as a toggle to disable or enable all logins.
  799.       The default state is logins enabled.  Use 'examine status' to
  800.       display the current state.
  801.  
  802.  
  803.       DEFAULT CHANNEL ASSIGNMENTS:
  804.  
  805.       0      CONSOLE
  806.       1      COM1 serial port
  807.       2      COM2 serial port
  808.       3      COM3 serial port
  809.       4      COM4 serial port
  810.       5      LPT1 printer device
  811.  
  812.       Example batch file to start VMiX and go remote to COM1.  If the
  813.       terminal type is to be a VT-100, then the batch file would
  814.       contain the command line:
  815.  
  816.       vm_boot set terminal -t4 / remote -c1
  817.  
  818.  
  819.       While in REMOTE mode, FUNCTION KEY emulation can be toggled by
  820.       pressing the <Ctrl> F keys (one beep) from the terminal's
  821.       keyboard.
  822.  
  823.       Note that the digit (numbers) keys on the terminal's keyboard
  824.       will now act as [F0] through [F9] keys.  The [Ins], [Del], and
  825.       [End] keys can now be invoked by pressing ^I,  ^D,  and  ^E
  826.       respectively.  The terminal's arrow keys and [Home] key will
  827.       simulate these keys and the terminal's <Shift> key will act as
  828.       the IBM PC's <Alt> key (See Figure 3).
  829.  
  830.       Press ^F a second time (two beeps) to return to numeric keys.
  831.  
  832.  
  833.  
  834.  
  835.  
  836.       Refer to the 'set baud' command for information about setting
  837.       the baud rate for remote channels.
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.       The Shell Commands                                      page 1-5
  858.  
  859.  
  860.       C O M S O F T                                           VMiX 386
  861.  
  862.  
  863.  
  864.  
  865.       NAME: swap
  866.       ____
  867.  
  868.       OUTLINE:
  869.       _______
  870.  
  871.       Purpose:  To swap a task to/from extended memory.
  872.       _______
  873.  
  874.  
  875.       DESCRIPTION:
  876.       ___________
  877.  
  878.       This is the VMiX task switcher function.  It will move a task
  879.       to and from extended memory.  When a task is in extended memory
  880.       it will be inactive until swapped back by the user.  If you have
  881.       toggled the swapper with the 'set system -s' command, then the
  882.       VMiX scheduler will regularly move the task down to conventional
  883.       memory for a timeslice of the computer and swap it back to let
  884.       other tasks execute.
  885.  
  886.       The command syntax is:
  887.  
  888.            swap [ process id ]
  889.  
  890.  
  891.       If a process is in low memory, it will be swapped to extended
  892.       memory.  If the process is already swapped, then it will be
  893.       moved back to low memory and resume execution.
  894.  
  895.       Swapped processes will not normally execute, and will stay
  896.       suspended until they are swapped again to low memory.
  897.  
  898.       To allow swapped tasks to also execute, (less frequently than
  899.       in-memory  tasks) use the command 'set system -s' to inform the
  900.       scheduler to include swapped tasks.  The default is no
  901.       time-slice scheduling for swapped tasks.
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.       The Shell Commands                                      page 1-6
  924.  
  925.  
  926.       C O M S O F T                                           VMiX 386
  927.  
  928.  
  929.  
  930.  
  931.       NAME: chprio
  932.       ____
  933.  
  934.       OUTLINE:
  935.       _______
  936.  
  937.       Purpose:  To change the executing priority of a VMiX process.
  938.       _______
  939.  
  940.  
  941.       DESCRIPTION:
  942.       ___________
  943.  
  944.       All VMiX processes are assigned a default base priority of 7,
  945.       at start-up.  Priorities are adjusted constantly by the
  946.       scheduler.  They dynamically change within the range 2 through
  947.       the assigned base maximum for the process.  When you use the
  948.       command 'chprio', you set the base maximum priority a process is
  949.       allowed to float to.  VMiX uses this float, for example, to 'up'
  950.       the priority of a process, when the keyboard is used.  Task
  951.       switching, also adjusts the current priority.  A process with a
  952.       base priority of 14 will execute twice as fast as another at
  953.       priority 7, all other things being equal.  A process with
  954.       priority 1 will not execute at all.  It will sleep until you
  955.       'up' the priority above 1, with 'chprio'.
  956.  
  957.       VMiX priorities range from a high of 31 to a low of 0.  The
  958.       scheduler always chooses the process with the highest current
  959.       priority.  The scheduler round robin's processes with the same
  960.       priority.  After a task executes for its timeslice duration, its
  961.       current priority is dropped by 1, to allow other lower priority
  962.       tasks to execute.  When the priority drops to 2, the priority of
  963.       the process is reset to the base maximum.
  964.  
  965.       The token 'chprio' is used to change the base and current
  966.       priority of any process to a new value.  The effect of the
  967.       command is to set the base maximum priority for the process and
  968.       at the same time make the current priority equal to the
  969.       specified base.
  970.  
  971.       The command syntax is:
  972.  
  973.         chprio [ pid [ / priority ] ]
  974.  
  975.       where, pid is the process id of the target process, and
  976.       priority is a value between 0 - 31.  If only chprio is entered,
  977.       then the shell will prompt for the two arguments.  The default
  978.       pid, if you only press <ENTER>, is the current process id
  979.       The default priority is the base priority of the target process.
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.       The Shell Commands                                      page 1-7
  990.  
  991.  
  992.       C O M S O F T                                           VMiX 386
  993.  
  994.  
  995.  
  996.  
  997.       NAME: exec
  998.       ____
  999.  
  1000.       OUTLINE:
  1001.       _______
  1002.  
  1003.         -m  " sets transient program memory partition size:
  1004.               (0 - 1024K)"
  1005.  
  1006.       Purpose:  To execute a valid MS-DOS file or command or to set
  1007.       _______   the program partition size in kilobytes.
  1008.  
  1009.  
  1010.       DESCRIPTION:
  1011.       ___________
  1012.  
  1013.       This command provides a direct but limited interface to MS-DOS.
  1014.       The 'exec' token can be used (with no switches) to execute any
  1015.       MS-DOS command string from within a VMiX root shell.  The main
  1016.       purpose of exec is to execute an MS-DOS file.  It can be invoked
  1017.       by itself or in conjunction with the spawn token.
  1018.  
  1019.       'exec' is normally not explicitly used from a VMiX shell, since
  1020.       VMiX passes commands it does not recognize to MS-DOS.  However,
  1021.       in case of a name conflict between a VMiX comand and an MS-DOS
  1022.       command, you would need to use 'exec' explicitly.  Example:
  1023.       'exec set' or 'exec debug.com'.
  1024.  
  1025.       The command syntax is:
  1026.  
  1027.            exec [ MS-DOS command ]
  1028.  
  1029.       The utility of 'exec' for invoking executable images from within
  1030.       a VMiX process is limited because 'exec' uses the MS-DOS
  1031.       command.com loader.  The MS-DOS loader makes assumptions about
  1032.       memory allocation, which do not conform to a multiuser
  1033.       environment like VMiX.
  1034.  
  1035.       In non-386 mode, two or more VMiX processes can use the 'exec'
  1036.       command to access MS-DOS provided that:
  1037.  
  1038.       a) All transient program memory has not been previously
  1039.          grabbed by a program (.COM programs will do this, as well
  1040.          as some .EXE program).
  1041.  
  1042.          The -m switch is used with the 'exec' command to control the
  1043.          amount of memory that .COM or .EXE programs will be allowed
  1044.          to grab.  The amount of memory made available to individual
  1045.          programs, is refered to as the partition size.
  1046.  
  1047.          The command syntax is:
  1048.  
  1049.              exec -m [ max. Kbytes ]
  1050.  
  1051.          where, the number of Kbytes specified sets the partition size
  1052.          and limits the amount of memory that a program can allocate.
  1053.  
  1054.  
  1055.       The Shell Commands                                      page 1-8
  1056.  
  1057.  
  1058.       C O M S O F T                                           VMiX 386
  1059.  
  1060.  
  1061.          Example:  'exec -m128<ENTER>', will limit programs to a
  1062.          maximum of 128 kilobytes.
  1063.  
  1064.  
  1065.       b) MS-DOS is not busy with a nested function call beyond the
  1066.          initial 'exec' call from VMiX.  If another VMiX process has
  1067.          also invoked MS-DOS services that have not completed, then
  1068.          VMiX will wait for MS-DOS to say that it can handle another
  1069.          request.
  1070.  
  1071.          When VMiX encounters this situation, it will print a message:
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.       The Shell Commands                                      page 1-9
  1122.  
  1123.  
  1124.       C O M S O F T                                           VMiX 386
  1125.  
  1126.  
  1127.  
  1128.  
  1129.       NAME: dosjob
  1130.       ____
  1131.  
  1132.       OUTLINE:
  1133.       _______
  1134.  
  1135.         -W  " gives process the full screen"
  1136.  
  1137.       Purpose:  To execute an MS-DOS command, and/or a series of VMiX
  1138.       _______   shell commands, in full screen or automatic window.
  1139.  
  1140.  
  1141.       DESCRIPTION:
  1142.       ___________
  1143.  
  1144.       'dosjob' spawns a child process that executes a string of
  1145.       commands, input immediately following, and on the same
  1146.       line as the 'dosjob' token.
  1147.  
  1148.       This command provides the main interface to multitasking and
  1149.       MS-DOS.  The main purpose of 'dosjob' is to execute an MS-DOS
  1150.       file or command.  It can also be invoked in conjunction with
  1151.       other VMiX shell commands.  For example, a 'dosjob', can include
  1152.       another 'dosjob' command in its job string.
  1153.  
  1154.       The difference between 'dosjob' and 'exec', is twofold.
  1155.       'dosjob' will start a new process to execute the job string,
  1156.       while 'exec' will use the current process.  Second, 'dosjob',
  1157.       (without the -W option) will open a new window for the process,
  1158.       while 'exec' will use the bounds of the current shell process.
  1159.  
  1160.       The command syntax is:
  1161.  
  1162.           dosjob [-W] [ MS-DOS command ]
  1163.                  [ / [ command ] /... ]
  1164.  
  1165.  
  1166.       NOTE:  'dosjob' essentially performs an 'assign' of a new
  1167.              SRCSINK channel to the console, followed by a 'set
  1168.              video -W' and a 'spawn' of a new child process, to
  1169.              execute the input command string.
  1170.  
  1171.  
  1172.       NOTE:  There is a direct keyboard combination to invoke a
  1173.              'dosjob'.  Pressing Shift-Enter or Shift-Shift-Enter,
  1174.              will start a new task, just as if you had typed 'dosjob'.
  1175.              The Shift-Enter is used, instead of just the Enter key,
  1176.              after typing a command.  If both Shift toggles are
  1177.              pressed when the Enter key is hit, the new task will use
  1178.              the full screen.  If only one Shift is held down, the
  1179.              task will start in a new window.
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.       The Shell Commands                                     page 1-10
  1188.  
  1189.  
  1190.       C O M S O F T                                           VMiX 386
  1191.  
  1192.  
  1193.  
  1194.  
  1195.       NAME: spawn
  1196.       ____
  1197.  
  1198.       OUTLINE:
  1199.       _______
  1200.  
  1201.         -c  " sets spawn I/O channel and shell script"
  1202.  
  1203.       Purpose:  To dispatch a background task to be performed
  1204.       _______   independently and concurrently with everything else.
  1205.  
  1206.  
  1207.       DESCRIPTION:
  1208.       ___________
  1209.  
  1210.       'spawn' creates a new child process, owned by the invoking
  1211.       shell.  The channel specified immediately after the -c switch
  1212.       becomes the STDIO channel for the new process.  After the
  1213.       channel number, a script of VMiX shell commands can be entered.
  1214.       Multiple commands are input, separated by a valid VMiX delimiter
  1215.       ('/' ',' tab or space).
  1216.  
  1217.       The command syntax is:
  1218.  
  1219.            spawn -c???? [ [ command ] /... ]
  1220.  
  1221.       A way to implement EMAIL in your system, is to have a user spawn
  1222.       an exec job to somebody else's channel, where the 'exec' merely
  1223.       types a newly created text message file:
  1224.  
  1225.         spawn -c1 / exec type b:\news\myfile.txt
  1226.  
  1227.  
  1228.       A more elegant way is to assign a new channel to the device COM1
  1229.       or COM?, so that we can create a window without disturbing the
  1230.       user.  If a window is created on the user's own channel, then we
  1231.       have modified his environment from our side.
  1232.  
  1233.       By using 'dstat -a', we can determine the port # to use to talk
  1234.       with our target user.  In VMiX, ports refers to physical
  1235.       devices, and channels are logical connections to those devices.
  1236.       Assume we determined that he is using COM1.  From the debugger
  1237.       shell, we first enable system messages, to see what channel
  1238.       number VMiX will allocate during our 'assign' command:
  1239.  
  1240.         set system -m    (enables manager msgs.)
  1241.  
  1242.       then we grab a channel,
  1243.  
  1244.         assign srcsink 1     (the 1 requests COM1, if you prefer to be
  1245.                               prompted, just type 'assign')
  1246.  
  1247.       assume that we were informed that channel 6 was assigned, then:
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.       The Shell Commands                                     page 1-11
  1254.  
  1255.  
  1256.       C O M S O F T                                           VMiX 386
  1257.  
  1258.  
  1259.       now we 'spawn' to channel 6,
  1260.  
  1261.         spawn -c6 / set video -w1 40 10 79 / type b:\news\myfile.txt
  1262.  
  1263.  
  1264.       This created a 10 x 40 window (via channel 6) at the top right
  1265.       corner of his display.  In the example above, the command
  1266.       'set video -W' could have been used, in place of our manual
  1267.       'set video -w....' .
  1268.  
  1269.       Still, a better EMAIL system could be written using the VMiX
  1270.       API System Services listed in sysgate.asm.
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.       The Shell Commands                                     page 1-12
  1320.  
  1321.  
  1322.       C O M S O F T                                           VMiX 386
  1323.  
  1324.  
  1325.  
  1326.  
  1327.       NAME: kill
  1328.       ____
  1329.  
  1330.       OUTLINE:
  1331.       _______
  1332.  
  1333.       Purpose:  To terminate the execution of an image (.EXE or .COM)
  1334.       _______   from a process other than the owner.  If the target
  1335.                 process shell is not executing an image, then the
  1336.                 process is killed.
  1337.  
  1338.  
  1339.       DESCRIPTION:
  1340.       ___________
  1341.  
  1342.       'kill' allows a hard terminate of a process or image to be
  1343.       commanded from another process.  This command has two levels
  1344.       of action.  If the target process shell is executing an image
  1345.       started by a previous exec call, then that image is terminated
  1346.       via an MS-DOS INT 20h system call.  If no image is being
  1347.       executed then 'kill' will terminate the target process.
  1348.  
  1349.       The command syntax is:
  1350.  
  1351.         kill [ process id ]
  1352.  
  1353.       The utility 'PS.EXE', will list all active (pid's) process id's.
  1354.  
  1355.       SECURITY:  The kill command will normally not allow a user to
  1356.       ________   terminate another user's process.  Only root or the
  1357.                  'su' superuser has the access priviledge to terminate
  1358.                  all/any.  A regular user can only terminate his own
  1359.                  spawned processes.
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.       The Shell Commands                                     page 1-13
  1386.  
  1387.  
  1388.       C O M S O F T                                           VMiX 386
  1389.  
  1390.  
  1391.  
  1392.  
  1393.       NAME: quit
  1394.       ____
  1395.  
  1396.       OUTLINE:
  1397.       _______
  1398.  
  1399.       Purpose:  To terminate the shell and exit.
  1400.       _______
  1401.  
  1402.  
  1403.       DESCRIPTION:
  1404.       ___________
  1405.  
  1406.       'quit' decrements a process's shell level (number of nested
  1407.       shells) by one and returns to the previous shell, if any.
  1408.       The root shell is VMiX's top shell for any given user process
  1409.       If this command is invoked at the root shell level, the user
  1410.       process is ended.
  1411.  
  1412.       Normally, the first process started at the console has root
  1413.       privilege.  If the process has privilege and is also the root
  1414.       VMiX process, then VMiX is also terminated.
  1415.  
  1416.       In other words, if you are at the first VMiX shell you type
  1417.       'quit' to end VMiX and return to DOS, otherwise 'quit' will just
  1418.       terminate the current shell or process.
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.       The Shell Commands                                     page 1-14
  1452.  
  1453.  
  1454.       C O M S O F T                                           VMiX 386
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.                                     PART TWO
  1468.  
  1469.  
  1470.                                     VMiX 386
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.                                     REFERENCE
  1480.  
  1481.  
  1482.                               THE DEBUGGER COMMANDS
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.       The Debugger Commands                                   page 2-1
  1518.  
  1519.  
  1520.       C O M S O F T                                           VMiX 386
  1521.  
  1522.  
  1523.  
  1524.  
  1525.       NAME: assign
  1526.       ____
  1527.  
  1528.       OUTLINE:
  1529.       _______
  1530.  
  1531.       'assign' allocates a VMiX channel to an owner UID (universal id)
  1532.       and assigns a VMiX object to the channel.
  1533.  
  1534.       'assign' allocates extended memory.
  1535.  
  1536.       'assign gdt' allocates a VMiX 386 global descriptor table entry,
  1537.       returning a new segment selector for either code or data.
  1538.  
  1539.  
  1540.       DESCRIPTION:
  1541.       ___________
  1542.  
  1543.  
  1544.       VMiX CHANNEL MANAGER OVERVIEW
  1545.       _____________________________
  1546.  
  1547.       The function of the channel manager is usually transparent to
  1548.       the user, but experienced users can make use of the low level
  1549.       interface and manipulate channels directly.
  1550.  
  1551.       The VMiX input/output system consists of I/O objects and I/O
  1552.       channels.  All VMiX objects are assigned an universal identifier
  1553.       or UID, including processes.  The 'assign' command is provided
  1554.       to establish connections between objects by assigning channels
  1555.       that link the connection, usually to an external port number.
  1556.       These assigned channels can then be referenced by other VMiX
  1557.       commands.
  1558.  
  1559.       The basic VMiX objects consist of the following:
  1560.  
  1561.         OBJECT TYPE NAME DEFINITIONS
  1562.  
  1563.         PROCESS   type is a process
  1564.         SRCSINK   type is a tty terminal
  1565.         CHRSINK...type is a printer
  1566.         DSKFILE   type is a file
  1567.         MEMORY    type is a memory block
  1568.         BLKSINK   type is a disk drive
  1569.         MANAGER   type is an obj manager or driver
  1570.         MAILBOX   type is a mailbox
  1571.         DATLINK   type is a data link
  1572.  
  1573.  
  1574.         PORTS     these are external resources like serial COMM ports
  1575.                   or LPT printer ports (they are sequentially numbered
  1576.                   starting at 0).
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.       The Debugger Commands                                   page 2-2
  1584.  
  1585.  
  1586.       C O M S O F T                                           VMiX 386
  1587.  
  1588.  
  1589.       Internally, objects are assigned a numeric identifier or UID.
  1590.       These can be listed by the utility 'DSTAT.EXE'.  Channel numbers
  1591.       are assigned sequentially on a first use basis.  Deassigned or
  1592.       free channel numbers are reused. 'assign' can be used to
  1593.       allocate extended memory, to establish channels to external
  1594.       ports, and to assign channels to processes.
  1595.  
  1596.  
  1597.       The general syntax for the 'assign' command is:
  1598.  
  1599.         assign [ client UID / process id ] [ object type ]
  1600.                [ target port / channel id ]
  1601.  
  1602.       where,
  1603.  
  1604.       UID is the identification of the new owner for the channel.
  1605.       Note:  if the owner is to be a process, the PID is equivalent to
  1606.       the UID of the process.
  1607.  
  1608.       If client process id is omitted, it defaults to the current
  1609.       process.
  1610.  
  1611.  
  1612.       The object type is one of the 9 type names described above.
  1613.       The complete name must be typed, in upper or lower case.
  1614.  
  1615.       Ports available for use with SRCSINK type objects (terminals):
  1616.  
  1617.         0   The Root Console
  1618.         1   COM1:
  1619.         2   COM2:
  1620.         3   COM3:
  1621.         4   COM4:
  1622.  
  1623.  
  1624.       Ports available for use with CHRSINK type objects (printers):
  1625.  
  1626.         1   LPT1:
  1627.         2   LPT2:
  1628.  
  1629.  
  1630.  
  1631.       This command syntax creates a channel by linking it to a port:
  1632.  
  1633.       If object type is SCRSINK, then the third argument is a COMM
  1634.       port (0-4), where 0 refers to the console and 1 - 4 are serial
  1635.       ports.
  1636.  
  1637.       If object type is CHRSINK, then the third argument is an LPT
  1638.       port (1-2).
  1639.  
  1640.  
  1641.  
  1642.       This command syntax assigns a previously created channel to a
  1643.       running process:
  1644.  
  1645.       If object type is PROCESS, then the third argument is a
  1646.       previously assigned channel id.
  1647.  
  1648.  
  1649.       The Debugger Commands                                   page 2-3
  1650.  
  1651.  
  1652.       C O M S O F T                                           VMiX 386
  1653.  
  1654.  
  1655.       You can use the 'assign process' syntax to assign a new STDIO
  1656.       channel to your executing process.  The original STDIO channel
  1657.       of the process will remain available for restoring the process
  1658.       back to its original state.  You must repeat the 'assign', and
  1659.       give the process its old channel id.
  1660.  
  1661.        The general syntax for the 'assign process' command is:
  1662.  
  1663.                assign [ client process id ] PROCESS
  1664.                       [ channel id to assign ]
  1665.  
  1666.       If client process id is omitted, it defaults to the current
  1667.       process.  The new channel you assign must already exist.
  1668.  
  1669.       You can reassign a process standard I/O (keyboard and video) to
  1670.       the console, to a COMM port, or to a printer type channel.  For
  1671.       example, to redirect process #1 (use PS.EXE to get the process
  1672.       id) to COM2 (channel #2), you would type:
  1673.  
  1674.                assign 1 PROCESS 2
  1675.  
  1676.       Again, VMiX will prompt you for any arguments missing after the
  1677.       'assign' command, except for the first argument which is an
  1678.       optional argument.
  1679.  
  1680.  
  1681.  
  1682.       This command syntax assigns an extended memory block:
  1683.  
  1684.       If object type is MEMORY, then the third argument is a block
  1685.       size in bytes, to assign to the channel.  The size will be
  1686.       rounded-up to the nearest 64k block.  Only extended memory can
  1687.       be allocated by this command.
  1688.  
  1689.       The extended memory pool can be listed with the utility
  1690.       'MONITOR.EXE -p'.
  1691.  
  1692.  
  1693.       NOTE:  To be informed, on the screen, of the channel assigned by
  1694.       this command, use the debugger command 'set system -m' to enable
  1695.       channel manager messages, before the assign.
  1696.  
  1697.       NOTE:  When assigning a channel to a SRCSINK that is going to be
  1698.       used for logins, the UID identifing the new owner of the channel
  1699.       must be set to 0, to indicate the UID of the scheduler,
  1700.       (example, 'assign 0 srcsink 1').
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.       The Debugger Commands                                   page 2-4
  1716.  
  1717.  
  1718.       C O M S O F T                                           VMiX 386
  1719.  
  1720.  
  1721.       Assigning 386 Global Descriptors:
  1722.  
  1723.       The command syntax is:
  1724.  
  1725.         assign gdt [ access [ / size ] [ / segment ] ]
  1726.  
  1727.  
  1728.       where,
  1729.  
  1730.       access is usually entered as the word 'code', if the segment is
  1731.       a code segment or as the word 'data', if the access byte of the
  1732.       gdt descriptor is to be set to data segment access rights.  The
  1733.       user can also enter a decimal or hexadecimal value, if he wishes
  1734.       to override the default access rights value that VMiX uses for
  1735.       its segments.
  1736.  
  1737.       The parameters can be entered in hexadecimal, using the format
  1738.       0x????  (example, 'assign gdt 0x9B 10 0xF000'
  1739.                or       'assign gdt code 10 0xF000').
  1740.       size is the size that the segment is to have, specified as the
  1741.       number of 512 Byte pages.
  1742.  
  1743.       segment is the segment address in physical memory that the
  1744.       selector is to translate to, when loaded onto a segment
  1745.       register.
  1746.  
  1747.       If mamager messages are enabled, this command will return a new
  1748.       selector id.
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.       The Debugger Commands                                   page 2-5
  1782.  
  1783.  
  1784.       C O M S O F T                                           VMiX 386
  1785.  
  1786.  
  1787.  
  1788.  
  1789.       NAME: deassign
  1790.       ____
  1791.  
  1792.       OUTLINE:
  1793.       _______
  1794.  
  1795.            'deassign' deallocates a VMiX channel.
  1796.  
  1797.            'deassign gdt' deallocates a VMiX gdt selector.
  1798.  
  1799.            'deassign mem' deallocates a VMiX extended memory block.
  1800.  
  1801.  
  1802.       DESCRIPTION:
  1803.       ___________
  1804.  
  1805.       The command syntax is:
  1806.  
  1807.         deassign [ channel ]
  1808.  
  1809.       where,
  1810.  
  1811.       channel specifies the channel number to deassign.  This can be a
  1812.       dangerous command to execute, since STDIO to the root console
  1813.       (channel  0) could be deassigned, freezing the console.  If no
  1814.       other shell is running, there is no way to assign the STDIO to
  1815.       the root console again.
  1816.  
  1817.       NOTE:  To be informed, on the screen, of the channel and
  1818.       IO Request Packets (IRP) deassigned by this command, use the
  1819.       debugger shell command 'set system -m' to enable channel manager
  1820.       messages, before the 'deassign'.
  1821.  
  1822.  
  1823.  
  1824.       The command syntax is:
  1825.  
  1826.         deassign gdt [ selector ]
  1827.  
  1828.  
  1829.       where,
  1830.  
  1831.       selector is the gdt selector returned by an 'assign gdt'.
  1832.  
  1833.  
  1834.  
  1835.       The command syntax is:
  1836.  
  1837.         deassign mem [ page ]
  1838.  
  1839.  
  1840.       where, page is the extended memory page to return to the free
  1841.       memory pool.  The memory was previously assigned with the
  1842.       'assign' command.
  1843.  
  1844.       The extended memory pages can be listed with the utility
  1845.       'MONITOR.EXE -p'.
  1846.  
  1847.       The Debugger Commands                                   page 2-6
  1848.  
  1849.  
  1850.       C O M S O F T                                           VMiX 386
  1851.  
  1852.  
  1853.  
  1854.  
  1855.       NAME: init
  1856.  
  1857.       OUTLINE:
  1858.  
  1859.       comm
  1860.         -c  " sets communications:
  1861.               chan, baud, parity, word, stop"
  1862.  
  1863.       print
  1864.         -p  " inits parallel port: chan"
  1865.  
  1866.  
  1867.       DESCRIPTION:
  1868.       ___________
  1869.  
  1870.       (See 'set baud'.)
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.       The Debugger Commands                                   page 2-7
  1914.  
  1915.  
  1916.       C O M S O F T                                           VMiX 386
  1917.  
  1918.  
  1919.  
  1920.  
  1921.       NAME: examine
  1922.       ____
  1923.  
  1924.       OUTLINE:
  1925.       _______
  1926.  
  1927.       mcb      " displays information on the MS-DOS memory control
  1928.                  blocks"
  1929.  
  1930.       memory   " displays or modifies memory"
  1931.  
  1932.       status   " displays system configuration"
  1933.  
  1934.  
  1935.       DESCRIPTION:
  1936.       ___________
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.       The Debugger Commands                                   page 2-8
  1980.  
  1981.  
  1982.       C O M S O F T                                           VMiX 386
  1983.  
  1984.  
  1985.  
  1986.  
  1987.       NAME: set
  1988.       ____
  1989.  
  1990.       OUTLINE:
  1991.       _______
  1992.  
  1993.       This is the basic configuration function.  There are several
  1994.       keywords that can be given after the 'set' token to further
  1995.       specify the area for configuration.
  1996.  
  1997.       baud
  1998.         -c  " sets communications:
  1999.               chan, baud, parity, word, stop"
  2000.  
  2001.       dos
  2002.         -f  " toggles DOS process file inherit ON/OFF"
  2003.         -n  " sets DOS INT21 function maximum nesting level"
  2004.         -p  " sets DOS current process PSP: nuPSP(seg)"
  2005.         -s  " sets DOS virtual size: nusize (4Kb blocks)"
  2006.  
  2007.       font
  2008.         -t  " sets font type: (0 - 3)"
  2009.  
  2010.       pool
  2011.         -a  " adjusts program memory: MCB(seg), nusize(para)"
  2012.         -m  " sets program partition size: (0 - 1024K)"
  2013.         -o  " sets program memory owner: MCB(seg), nuPSP(seg)"
  2014.  
  2015.       process
  2016.         -b  " sets process shell buffer size: (0 - 127)"
  2017.         -e  " toggles environment protection ON/OFF"
  2018.         -h  " toggles hardware priviledge ON/OFF"
  2019.         -s  " toggles system priviledge ON/OFF"
  2020.         -w  " sets preemption I/O wait cycles: count"
  2021.  
  2022.       remote
  2023.         -a  " toggles global polling ON/OFF"
  2024.         -c  " sets remote console channel"
  2025.         -i  " toggles fast RS232 ON/OFF"
  2026.         -l  " sets terminal login channel"
  2027.         -x  " toggles remote logins ON/OFF"
  2028.  
  2029.       system
  2030.         -c  " toggles cursor emulation ON/OFF"
  2031.         -d  " sets duration of task slice: tickcnt - 1"
  2032.         -m  " toggles operator messages ON/OFF"
  2033.         -s  " toggles swapper ON/OFF"
  2034.         -t  " toggles scheduler ON/OFF"
  2035.         -v  " toggles maximum DOS size ON/OFF"
  2036.         -w  " sets shutdown wait delay: seconds"
  2037.  
  2038.       terminal
  2039.         -t  " sets terminal type: (0 - 9)"
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.       The Debugger Commands                                   page 2-9
  2046.  
  2047.  
  2048.       C O M S O F T                                           VMiX 386
  2049.  
  2050.  
  2051.       video
  2052.         -c  " sets video background/foreground colors"
  2053.         -C  " sets window background/foreground colors"
  2054.         -m  " sets video mode: (0 - 18)"
  2055.         -p  " sets video page: (0 - 3)"
  2056.         -s  " toggles status display ON/OFF"
  2057.         -w  " sets window size: row0, col0, row1, col1"
  2058.         -W  " auto partitions task windows (Shift-Tab toggles kbd)"
  2059.  
  2060.  
  2061.       DESCRIPTION:
  2062.       ___________
  2063.  
  2064.  
  2065.       VMiX SERIAL COMMUNICATIONS
  2066.       __________________________
  2067.  
  2068.       set baud
  2069.  
  2070.       A valid channel (normally equivalent to a COMM port 1 to 4) must
  2071.       be given after the -c  switch.
  2072.  
  2073.       The command syntax is:
  2074.  
  2075.         set baud -c [ channel id ] [ baud rate ] [,] [ parity ] [,]
  2076.                     [ word size ] [,] [ stop bits ]
  2077.  
  2078.       VALID BAUD RATES
  2079.  
  2080.       300    [ same as 30 ]
  2081.       1200   [ same as 12, 120 ]
  2082.       2400   [ same as 24, 240 ]
  2083.       4800   [ same as 48, 480 ]
  2084.       9600   [ same as 96, 960 ]    (Default Baud Rate)
  2085.       19200  [ same as 192, 1920 ]  (Always interrupt driven)
  2086.       38400  [ same as 384, 3840 ]  (Always interrupt driven)
  2087.       115200 [ same as 115, 1152 ]  (Always interrupt driven)
  2088.  
  2089.  
  2090.       All parameters, except the channel number and the Baud Rate
  2091.       are optional.
  2092.  
  2093.       There can only be one channel at a baud rate above 9600, at any
  2094.       one time.  To set a different channel to a high baud rate, you
  2095.       must first close (reset) the current interrupt driven channel
  2096.       by using the command 'set baud -c????' (where ???? is the
  2097.       channel id).  Note that no new baud rate is specified.  After
  2098.       this command completes, you may set baud, specifying a new
  2099.       channel.
  2100.  
  2101.  
  2102.       VMiX INT 14h - Driver Note:
  2103.  
  2104.       When programming to the BIOS INT 14h Serial Service, VMiX uses
  2105.       the BIOS codes for:
  2106.                           110 Baud as the code for 19200 Baud
  2107.                           150 Baud as the code for 38400 Baud
  2108.                           600 Baud as the code for 115200 Baud
  2109.  
  2110.  
  2111.       The Debugger Commands                                  page 2-10
  2112.  
  2113.  
  2114.       C O M S O F T                                           VMiX 386
  2115.  
  2116.  
  2117.       set terminal
  2118.  
  2119.       The 'set terminal -t' command is used to specify one of 7
  2120.       terminal emulations available at the VMiX serial ports
  2121.    .  Depending what you have connected as a user station to one of
  2122.       the host ports, you might need to select a different emulation
  2123.       than the default ANSI.
  2124.  
  2125.       TERMINAL EMULATIONS SUPPORTED
  2126.  
  2127.         -t0 = TELEVIDEO 910/920
  2128.         -t1 = ADM3A
  2129.         -t2 = VT-52
  2130.         -t3 = ZENITH H19
  2131.         -t4 = VT-100
  2132.         -t5 = Ansi (Default terminal emulation)
  2133.         -t9 = tty
  2134.  
  2135.  
  2136.  
  2137.       VMiX MEMORY
  2138.       ___________
  2139.  
  2140.       set pool
  2141.  
  2142.       The -m  switch can be used to control the amount of memory .COM
  2143.       or .EXE programs can grab.  This command is equivalent to 'exec
  2144.       -m'.
  2145.  
  2146.       The command syntax is:
  2147.  
  2148.         set pool -m [ max. K bytes ]
  2149.  
  2150.  
  2151.       The -a switch is provided with the 'set  pool'  command, to
  2152.       allow for the release of memory previously allocated by MS-DOS
  2153.       or to change the size of an MS-DOS memory control block.  This
  2154.       option can also be used to increase or decrease a VMiX memory
  2155.       control block, and hence the number of pages of memory in the
  2156.       conventional memory pool.  The function depends on whether the
  2157.       segement address passed is for an MS-DOS MCB, or a VMiX MCB.  In
  2158.       the later case, the paged memory pool is affected.  This can be
  2159.       a dangerous option.  To help in determining the arguments for
  2160.       this switch, use the command 'examine mcb'.  It will list the
  2161.       memory control block chain, in low memory.
  2162.  
  2163.       The command syntax is:
  2164.  
  2165.         set pool -a [ MCB address [ / nusize ] ]
  2166.  
  2167.  
  2168.       where,
  2169.  
  2170.       the segment address of the MCB and nusize must be specified only
  2171.       in hexadecimal format.  (example, 'set pool -a 26F0 / AF8).
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.       The Debugger Commands                                  page 2-11
  2178.  
  2179.  
  2180.       C O M S O F T                                           VMiX 386
  2181.  
  2182.  
  2183.       The -o switch is provided to allow for the change of ownership
  2184.       of memory previously allocated by MS-DOS.
  2185.  
  2186.       The command syntax is:
  2187.  
  2188.         set pool -o [ MCB address [ / nuPSP ] ]
  2189.  
  2190.  
  2191.  
  2192.       VMiX SCREEN COLOR SELECTION
  2193.       ___________________________
  2194.  
  2195.       Alphanumeric Text Modes:
  2196.  
  2197.       The command syntax is:
  2198.  
  2199.         set video -c [ color code ]
  2200.         set video -C [ color code ]
  2201.  
  2202.  
  2203.       The color code is a 2 digit hexadecimal number of the form:
  2204.  
  2205.       0xBF
  2206.  
  2207.  
  2208.       where,
  2209.  
  2210.       B is the background color key and F is the foreground color key,
  2211.       selected fron the table below.  To use this method, the color
  2212.       code argument must be entered in hexadecimal format.  Because
  2213.       the argument is in hexadecimal, it must be preceeded by an '0x'.
  2214.  
  2215.  
  2216.        COLOR KEYS
  2217.  
  2218.        B  BACKGROUNDS     F  FOREGROUNDS
  2219.  
  2220.        0   black          0 black   8  gray
  2221.        1   blue           1 blue    9  lt. blue
  2222.        2   green          2 green   A  lt. green
  2223.        3   cyan           3 cyan    B  lt. cyan
  2224.        4   red            4 red     C  lt. red
  2225.        5   magenta        5 magenta D  lt. mag
  2226.        6   brown          6 brown   E  yellow
  2227.        7   white          7 white   F  brt white
  2228.  
  2229.  
  2230.       Graphics Modes:
  2231.  
  2232.       The command syntax is:
  2233.  
  2234.         set video -c [ color code ]
  2235.         set video -C [ color code ]
  2236.  
  2237.       The color code is a decimal or hexadecimal  number  which
  2238.       represents the pixels on(1) or off(0) binary patterns on the
  2239.       screen.  See the color code table given below.
  2240.  
  2241.  
  2242.  
  2243.       The Debugger Commands                                  page 2-12
  2244.  
  2245.  
  2246.       C O M S O F T                                           VMiX 386
  2247.  
  2248.  
  2249.       COLOR CODES
  2250.  
  2251.       DECIMAL   HEXADECIMAL
  2252.  
  2253.          0         0x00      00000000  black
  2254.          85        0x55      01010101  gray
  2255.         170        0xAA      10101010  gray
  2256.         255        0xFF      11111111  white
  2257.  
  2258.  
  2259.  
  2260.       VMiX CONSOLE STATUS LINE
  2261.       _______________________
  2262.  
  2263.  
  2264.       set video
  2265.  
  2266.         -s  " toggles status display ON/OFF"
  2267.  
  2268.  
  2269.       The VMiX status line displays at the bottom of the console
  2270.       display, when enabled with the command 'set video -s' from the
  2271.       Root Shell.  You should enable the status line BEFORE other
  2272.       tasks are started.  If the status line is enabled after other
  2273.       windows are running, the screen for those tasks might not
  2274.       display the correct number of program lines.
  2275.  
  2276.            The status line displays:
  2277.  
  2278.                 the time
  2279.                 the current console VIO channel and task name
  2280.                 the current console video mode
  2281.                 the keyboard toggle keys
  2282.                     [Ins]
  2283.                     [Num Lock]
  2284.                     [Caps Lock]
  2285.                     [Scroll Lock]
  2286.  
  2287.  
  2288.  
  2289.       VMiX WINDOW SIZING
  2290.       __________________
  2291.  
  2292.  
  2293.       set video
  2294.  
  2295.         -w  " sets root window size: y0, x0, y1, x1"
  2296.  
  2297.  
  2298.       The -w switch is used to  specify the bounds of a new root
  2299.       window.  A root window is where all user dialog with the
  2300.       operating system takes place.
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.       The Debugger Commands                                  page 2-13
  2310.  
  2311.  
  2312.       C O M S O F T                                           VMiX 386
  2313.  
  2314.  
  2315.       0
  2316.          --------------------------------------------------------
  2317.         | VMiX.386 2.6X               Copyright ComSoft, Inc.1991|
  2318.         |--------------------------------------------------------|
  2319.         |                                                        |
  2320.         |                                                        |
  2321.       r | TOP left corner                                        |
  2322.         | *----------------------------                          |
  2323.   Y   o | |y,x                         |                         |
  2324.         | |        WINDOW              |                         |
  2325.       w | |                            |                         |
  2326.         | |                         y,x|                         |
  2327.         |  ----------------------------*                         |
  2328.         |                              BOTTOM right corner       |
  2329.         |                                                        |
  2330.         |                                                        |
  2331.      24  --------------------------------------------------------
  2332.         0                         column                        79
  2333.                                     X
  2334.  
  2335.  
  2336.       The command syntax is:
  2337.  
  2338.         set video -w [ [ top row ]
  2339.                        [ , top col ]
  2340.                        [ , bot row ]
  2341.                        [ , bot col ] ]
  2342.  
  2343.  
  2344.  
  2345.       VMiX AUTO SCREEN PARTITIONING
  2346.       _____________________________
  2347.  
  2348.  
  2349.       set video
  2350.  
  2351.         -W, " auto partitions task windows
  2352.               (Shift-Tab moves kbd between windows)"
  2353.  
  2354.       Supports multitasking from the console (up to 4 windows).
  2355.       Note that the 'W' must be typed in upper-case, to distinguish
  2356.       it from the manual Size Window command, described above.
  2357.  
  2358.  
  2359.       The command syntax is:
  2360.  
  2361.         set video -W
  2362.  
  2363.  
  2364.       This command is sensitive to the number of channels that have
  2365.       been assigned to COM0, the console.  It uses this count to
  2366.       determine the number of windows to divide the screen.
  2367.  
  2368.       The 'set video -W' command, is intended to work in cunjunction
  2369.       with the 'assign' command.  The purpose is to split the screen
  2370.       to accomodate a new channel assigned for a console task, yet to
  2371.       be spawned.
  2372.  
  2373.  
  2374.  
  2375.       The Debugger Commands                                  page 2-14
  2376.  
  2377.  
  2378.       C O M S O F T                                           VMiX 386
  2379.  
  2380.  
  2381.       The nominal set of commands needed to manually start a
  2382.       background/windowed task at the console is:
  2383.  
  2384.         'set system -m'  will enable operator messages
  2385.  
  2386.         'assign srcsink 0'  will grab a new console (device 0)
  2387.                             channel and display its id # ????
  2388.  
  2389.         'spawn -c???? set video -W / exec .....'  will spawn a new
  2390.                                                   background task to
  2391.                                                   channel ?? assigned
  2392.                                                   and partition the
  2393.                                                   screen
  2394.  
  2395.         (press Shift-Tab to move the keyboard to the new task
  2396.  
  2397.       The  above  sequence can be  replaced by the simpler to use,
  2398.       single command:
  2399.  
  2400.         'dosjob .....'
  2401.  
  2402.       where ..... is the same user job string input with spawn, above.
  2403.  
  2404.         'dosjob set video -W / exec .....'
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.       The Debugger Commands                                  page 2-15
  2442.  
  2443.  
  2444.       C O M S O F T                                           VMiX 386
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.                                    PART THREE
  2458.  
  2459.  
  2460.                                     VMiX 386
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.                                     REFERENCE
  2470.  
  2471.  
  2472.                                   THE UTILITIES
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.       The Utilities                                           page 3-1
  2508.  
  2509.  
  2510.       C O M S O F T                                           VMiX 386
  2511.  
  2512.  
  2513.  
  2514.  
  2515.       VMiX includes 8 utility programs:
  2516.  
  2517.         PS.EXE
  2518.         DSTAT.EXE
  2519.         DPATH.EXE
  2520.         LOADUP.EXE
  2521.         OUTSIDE.EXE
  2522.         MONITOR.EXE
  2523.         VT.EXE
  2524.         VW.EXE
  2525.  
  2526.  
  2527.       These programs assist VMiX users and are described below.
  2528.  
  2529.       Note that you do not need to be in a VMiX shell to execute one
  2530.       of the utilities.  VMiX only needs to be resident.  You may
  2531.       shell out of a word processing program running under VMiX and
  2532.       execute a utility from DOS.
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.       The Utilities                                           page 3-2
  2574.  
  2575.  
  2576.       C O M S O F T                                           VMiX 386
  2577.  
  2578.  
  2579.  
  2580.  
  2581.       NAME: ps.exe
  2582.       ____
  2583.  
  2584.       OUTLINE:
  2585.       _______
  2586.  
  2587.       ps    " displays all processes status"
  2588.  
  2589.  
  2590.       DESCRIPTION:
  2591.       ___________
  2592.  
  2593.       This utility displays a list of all currently active processes.
  2594.       Information on the job being executed, the current priority and
  2595.       assigned STDIO channel are listed.
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.       The Utilities                                           page 3-3
  2640.  
  2641.  
  2642.       C O M S O F T                                           VMiX 386
  2643.  
  2644.  
  2645.  
  2646.  
  2647.       NAME: dstat.exe
  2648.       ____
  2649.  
  2650.       OUTLINE:
  2651.       _______
  2652.  
  2653.       dstat   " displays all VMiX objects and channel information"
  2654.  
  2655.         -a    " selects only assigned objects"
  2656.         -r    " selects only free objects"
  2657.  
  2658.  
  2659.       DESCRIPTION:
  2660.       ___________
  2661.  
  2662.       This utility display the object id's of VMiX objects, the type
  2663.       of object and assigned channels.  If no channel is assigned,
  2664.       then -1 is displayed.  The scheduler (process id 0) owns free
  2665.       objects and channels.
  2666.  
  2667.       If a channel is associated with a COMM port, dstat will
  2668.       also display the current baud rate setting for the channel.
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.       The Utilities                                           page 3-4
  2706.  
  2707.  
  2708.       C O M S O F T                                           VMiX 386
  2709.  
  2710.  
  2711.  
  2712.  
  2713.       NAME: dpath.exe
  2714.       ____
  2715.  
  2716.       OUTLINE:
  2717.       _______
  2718.  
  2719.       dpath   " sets directory search PATH for data files"
  2720.  
  2721.         -v    " sets verbose mode (default)"
  2722.         -q    " sets quiet mode"
  2723.         -r    " allows data read only"
  2724.         -w    " allows data read/write (default)"
  2725.         -h    " displays help"
  2726.  
  2727.  
  2728.       DESCRIPTION:
  2729.       ___________
  2730.  
  2731.       DPATH is a public domain utility, modified to work with VMiX.
  2732.       This utility is similar to the MS-DOS command 'append' and lets
  2733.       you specify a path for DOS to use when searching for program
  2734.       data files (See DPATH.DOC).
  2735.  
  2736.       VMiX allows independent default disk drives for separate tasks
  2737.       (or shells) but only one default directory per drive.  You will
  2738.       need to use DPATH when running multiple applications on the same
  2739.       drive which require different default directories.  You use
  2740.       DPATH the same way you use the MS-DOS command PATH to specify
  2741.       the search path for executables.
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.       The Utilities                                           page 3-5
  2772.  
  2773.  
  2774.       C O M S O F T                                           VMiX 386
  2775.  
  2776.  
  2777.  
  2778.  
  2779.       NAME: loadup.exe
  2780.       ____
  2781.  
  2782.       OUTLINE:
  2783.       _______
  2784.  
  2785.       loadup  " VMiX loadhi utility to place TSRs above 640Kb"
  2786.  
  2787.  
  2788.       DESCRIPTION:
  2789.       ___________
  2790.  
  2791.       This utility can be executed from inside VMiX to load a TSR to
  2792.       upper memory above segment C000h.  (386 Mode Only!)
  2793.       
  2794.       The loaded TSR will be visible only to the process that started
  2795.       it, since each VMiX task is virtually mapped to a separate
  2796.       virtual first megabyte.  This means that you can have different
  2797.       (or the same) TSRs active for each partition.
  2798.  
  2799.       VMiX is compatible with XMS drivers, like HIMEM.SYS.  However,
  2800.       VMiX will not work with other 80386 virtual memory managers,
  2801.       like EMM386.SYS, QEMM.SYS or 386MAX.SYS
  2802.  
  2803.       Since you can not use another extended memory manager when using
  2804.       VMiX, this utility has been provided to move TSRs to upper
  2805.       memory.
  2806.  
  2807.       The command syntax is:
  2808.  
  2809.              LOADUP [/help] [/segment=] [/size=] filespec
  2810.  
  2811.       We recommend that you do the first TSR load with /size=128
  2812.       (number of 1Kb blocks) and reduce the size if LOADUP reports
  2813.       memory unavailable.
  2814.  
  2815.       For subsequent TSR loads, invoke LOADUP with /size=0, since
  2816.       the upper memory block has already being assigned, but not
  2817.       necessarily all used.  New TSRs will look for unused memory
  2818.       within the upper memory block assigned in the first LOADUP.
  2819.  
  2820.       When you first invoke LOADUP, you want to specify a size equal
  2821.       to the largest contiguous space available above your video ROM
  2822.       area (depending on your HDisk controller and other installed
  2823.       adapters, this area size is usually between 64 and 128
  2824.       kilobytes).
  2825.  
  2826.       If no size is given, LOADUP looks for 64 Kbytes in upper memory
  2827.       to load the TSR.  The second, third, etc. time a TSR is loaded,
  2828.       you should specify a size of 0 (or if known, the actual size
  2829.       required by the TSR).
  2830.  
  2831.       If you know what you are doing, this utility will also allow
  2832.       you to specify the segment location (i.e., /segment=D000).
  2833.  
  2834.       If your TSRs requires less than 64 Kbytes, then 'LOADUP
  2835.       filespec' will work fine without any arguments.
  2836.  
  2837.       The Utilities                                           page 3-6
  2838.  
  2839.  
  2840.       C O M S O F T                                           VMiX 386
  2841.  
  2842.  
  2843.  
  2844.  
  2845.       NAME: outside.exe
  2846.       ____
  2847.  
  2848.       OUTLINE:
  2849.       _______
  2850.  
  2851.       outside " MS-DOS shelling utility for bulletin board
  2852.                 software executing under VMiX"
  2853.  
  2854.         -c    " selects the COMM port channel for the remote outside
  2855.                 shell"
  2856.  
  2857.  
  2858.       DESCRIPTION:
  2859.       ___________
  2860.  
  2861.       Bulletin Board software usually allows you to install a program
  2862.       to execute when the SysOp desires to shell out to DOS to perform
  2863.       some maintenance.
  2864.  
  2865.       This utility allows you to shell to DOS, when running the BBS
  2866.       software under VMiX.  'Outside' will spawn a new task for the
  2867.       DOS shell, independent of the BBS task.
  2868.  
  2869.         -c1   shell to DOS on COM1    (default)
  2870.         -c2   shell to DOS on COM2
  2871.         -c3   shell to DOS on COM3
  2872.         -c4   shell to DOS on COM4
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.       The Utilities                                           page 3-7
  2904.  
  2905.  
  2906.       C O M S O F T                                           VMiX 386
  2907.  
  2908.  
  2909.  
  2910.  
  2911.       NAME: monitor.exe
  2912.       ____
  2913.  
  2914.       OUTLINE:
  2915.       _______
  2916.  
  2917.       monitor " utility monitors process or system"
  2918.  
  2919.         -f    " displays information on any open files on the system"
  2920.         -m    " displays a memory map of the first megabyte of
  2921.                 address space"
  2922.         -p    " displays information on the VMiX paged memory pools
  2923.                 in conventional and extended memory"
  2924.         -r    " monitors process registers continuously: process id"
  2925.  
  2926.  
  2927.       DESCRIPTION:
  2928.       ___________
  2929.  
  2930.       The command syntax is:
  2931.  
  2932.         monitor [ -f ] [ -m ] [ -p ] [ -r ] [ process id ]
  2933.  
  2934.  
  2935.       If all switches are omitted, the process block of any specified
  2936.       process will be displayed.  If no process id is given, you will
  2937.       be asked to supply one; if none is supplied, the default is the
  2938.       current process.
  2939.  
  2940.       When the '-r' switch is included before the process id, the
  2941.       process registers will be continuously monitored until the
  2942.       'Esc' or the Ctrl Break key is pressed.
  2943.  
  2944.       While in the register viewing mode, pressing Ctrl S will put the
  2945.       process being viewed to sleep.  Pressing Ctrl Q will wake the
  2946.       process.
  2947.  
  2948.       While in the register viewing mode, pressing the 'M' key will
  2949.       allow you to examine and/or modify memory locations.
  2950.  
  2951.       The address format is:
  2952.  
  2953.         segment [ : offset ] [ = byte ]
  2954.  
  2955.  
  2956.       where,
  2957.  
  2958.       the '= byte' is optional, for example:
  2959.  
  2960.         hex address? 550A             displays segment 550A:0
  2961.         hex address? 550A:100         displays segment 550A:100
  2962.         hex address? 550A:100 = FF    sets byte at 550A:100 to FF
  2963.  
  2964.       The 'examine memory' command does the equivalent from the VMiX
  2965.       shell.
  2966.  
  2967.  
  2968.  
  2969.       The Utilities                                           page 3-8
  2970.  
  2971.  
  2972.       C O M S O F T                                           VMiX 386
  2973.  
  2974.  
  2975.       'monitor -f' allows all open files on a VMiX system to be
  2976.       globally monitored.  Open files will be listed and revised until
  2977.       the 'Esc' key is pressed.
  2978.  
  2979.       'monitor -m' displays a map of the first one megabyte of memory
  2980.       space.  The screen displays memory in 1Kbyte (1024) blocks.  If
  2981.       the block is in use by the system, then it is marked by a '$' or
  2982.       a solid black block, in graphics mode.  If the block is in use
  2983.       by VMiX, then it is marked by a 'V' or a gray shaded block.
  2984.       Memory control blocks are distinguished by an '='  or a small
  2985.       solid black block with border, in graphics mode.  Memory not in
  2986.       use is  indicated by an '.' or a small solid white block with
  2987.       border.
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.       The Utilities                                           page 3-9
  3036.  
  3037.  
  3038.       C O M S O F T                                           VMiX 386
  3039.  
  3040.  
  3041.  
  3042.  
  3043.       NAME: vsetup.exe
  3044.       ____
  3045.  
  3046.       OUTLINE:
  3047.       _______
  3048.  
  3049.       vsetup   "Utility executed at startup to process the VMiX
  3050.                 configuration file, VMiX.INI
  3051.  
  3052.  
  3053.  
  3054.       DESCRIPTION:
  3055.       ___________
  3056.  
  3057.       VMiX.INI is a text autoconfigure file that allows startup
  3058.       scripts, remote login passwords, and remote login scripts
  3059.       to be specified by the VMiX system administrator.
  3060.  
  3061.       This flexible configuration file assists you in:
  3062.  
  3063.           A) configuring VMiX startup - VMiX or DOS commands that
  3064.              get executed automatically, after you start the
  3065.              VM_BOOT.EXE program.
  3066.  
  3067.           B) entering passwords - up to 8 character long passwords
  3068.              used to provide controlled access to a VMiX system
  3069.              that has been configured to accept remote callers
  3070.              with the 'set remote -l' command.
  3071.  
  3072.           C) specifying user programs to autostart after a remote
  3073.              caller has logged-in via a COMM port.
  3074.  
  3075.  
  3076.       The configuration file is optional and it works in cunjunction
  3077.       with the VSETUP.EXE utility.  This utility is normally invoked
  3078.       in two ways:
  3079.  
  3080.           1. in the VMiX startup command line
  3081.  
  3082.              To ensure that VSETUP.EXE can always find VMiX.INI,
  3083.              the best way to start VMiX is with a full filespec and
  3084.              path for VM_BOOT.EXE,
  3085.  
  3086.              ie., C:\VMiX\VM_BOOT VSETUP  (from the VMiX directory)
  3087.  
  3088.              then, you can change directories, and reset paths and
  3089.              VSETUP will always find VMiX.INI (during remote logins).
  3090.  
  3091.           2. appended to the end of a 'set remote -l' command
  3092.              (for example: set remote -l2 vsetup).
  3093.  
  3094.              'set remote -l????' by itself, without VSETUP.EXE
  3095.              restores the default VMiX shell (where access passwords
  3096.              are not checked).
  3097.  
  3098.  
  3099.  
  3100.  
  3101.       The Utilities                                          page 3-10
  3102.  
  3103.  
  3104.       C O M S O F T                                           VMiX 386
  3105.  
  3106.  
  3107.       VMiX.INI Configuration File Format
  3108.       __________________________________
  3109.  
  3110.  
  3111.       File type:       ASCII text
  3112.  
  3113.       Comment Symbol:  ;
  3114.  
  3115.                  (everything after an ';' anywhere in a line
  3116.                   is a comment)
  3117.  
  3118.       Sections:        Three Labled Sections
  3119.  
  3120.  
  3121.       ;START
  3122.       [access passwords]
  3123.          .             ;Multiple text passwords that will be
  3124.          .             ;encrypted the first time VSETUP processes
  3125.          .             ;this file.
  3126.          .
  3127.          .
  3128.  
  3129.       [remote startup]
  3130.          .             ;A single line that can include multiple
  3131.                        ;commands, executed only at remote loggin.
  3132.  
  3133.       [startup]
  3134.          .             ;Multiple lines that can include multiple
  3135.          .             ;commands per line, executed only at VMiX
  3136.          .             ;startup.
  3137.          .             ;It is better to use a single line per
  3138.          .             ;'dosjob' command.  For other commands,
  3139.          .             ;concatenate as many as possible on a single
  3140.          .             ;(each line is sequentially processed by
  3141.          .             ;a new VMiX process).
  3142.          .
  3143.       ;END
  3144.  
  3145.  
  3146.       A self-documented sample VMiX.INI file is included as a
  3147.       template for you to make your own configuration file.
  3148.  
  3149.  
  3150.  
  3151.       VMiX.INI Configuration File Processing
  3152.       ______________________________________
  3153.  
  3154.  
  3155.       VSETUP.EXE is the only utility that reads the .INI file.
  3156.       This utility currently performs 3 functions:
  3157.  
  3158.       1) If it finds an [access passwords] Section in VMiX.INI,
  3159.          it backups the file to VMiX.BAK and encrypts the text
  3160.          passwords, changing the Section name to [encrpt passwords].
  3161.  
  3162.          Remove the unencrypted file VMiX.BAK from your hard disk,
  3163.          so that the original passwords remain secret to all other
  3164.          users.  You can copy VMiX.BAK back to VMiX.INI when you
  3165.          need to change the text password list.
  3166.  
  3167.       The Utilities                                          page 3-11
  3168.  
  3169.  
  3170.       C O M S O F T                                           VMiX 386
  3171.  
  3172.  
  3173.       2) If invoked during startup, it will execute multiple command
  3174.          lines given in the [startup] Section.  This is an alternative
  3175.          to typing all startup commands in the VM_BOOT command line.
  3176.          (System Startup Options, however, can ONLY be given at the
  3177.           command line, since VSETUP runs after VM_BOOT is started.
  3178.  
  3179.       3) If invoked during a COMM port access, (you must have issued
  3180.          a 'set remote -l???? vsetup' command) it will prompt for
  3181.          an access password and match it against the encrypted list
  3182.          in VMiX.INI.  After verifying access, it will dispatch the
  3183.          single command line listed under the [remote startup]
  3184.          Section.  (The single line can have multiple commands,
  3185.          separated by a '/').
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.       The Utilities                                          page 3-12
  3234.  
  3235.  
  3236.       C O M S O F T                                           VMiX 386
  3237.  
  3238.  
  3239.  
  3240.  
  3241.       NAME: vt.exe
  3242.       ____
  3243.  
  3244.       OUTLINE:
  3245.       _______
  3246.  
  3247.       vt   " utility to login to a remote VMiX host"
  3248.  
  3249.  
  3250.       DESCRIPTION:
  3251.       ___________
  3252.  
  3253.       VT can be used to connect to other VMiX hosts from a local
  3254.       shell.  Essentially VT is a remote utility to serially link
  3255.       together two different VMiX hosts (115.2 Kbaud maximum).
  3256.       This utility form the basis for a VMiX distributed system in
  3257.       a network of two or more VMiX systems.
  3258.  
  3259.       VT will start a remote session with the second computer via the
  3260.       COMM port currently specified by 'set remote -l ????' (you can
  3261.       determine the current setting with the 'examine status'
  3262.       command).  You can then execute from host-1 any program on
  3263.       host-2.
  3264.  
  3265.  
  3266.       To set up a single remote session from host-1 connected to
  3267.       host-2 use the following:
  3268.  
  3269.            host-1                     host-2
  3270.  
  3271.        set remote -l1             set remote -l1      (COM1 for both)
  3272.        do vt.exe                      -      (Request host-2 session)
  3273.        login                          -(host-2 asks for session name)
  3274.                                                          (you are in)
  3275.  
  3276.  
  3277.       To set up dual links (one VT session on host-1 running on
  3278.       host-2, and another VT session on host-2 running on host-1
  3279.       use the following:
  3280.  
  3281.            host-1                     host-2
  3282.  
  3283.        set remote -l1             set remote -l1      (COM1 for both)
  3284.        do vt.exe                      -              (host-2 session)
  3285.        login                          -                (session name)
  3286.        press Shift-Tab                -              (switch to Root)
  3287.        set remote -l2             set remote -l2      (COM2 for both)
  3288.            -                      do vt.exe          (host-1 session)
  3289.            -                      login                  (enter name)
  3290.        press Shift-Tab                -                (return to VT)
  3291.  
  3292.       NOTE:  To activate (and transmit to the remote host) the IBM
  3293.       function key equivalents (like Alt-X, PgUp, up-arrow, F3, etc.)
  3294.       you must toggle IBM emulation by pressing Ctrl-F.  Then the
  3295.       application in the VT window will respond to the special keys
  3296.       (See Figure 3).
  3297.  
  3298.  
  3299.       The Utilities                                          page 3-13
  3300.  
  3301.  
  3302.       C O M S O F T                                           VMiX 386
  3303.  
  3304.  
  3305.       You will need to press Ctrl-F again to disable IBM emulation,
  3306.       after the special keys are used so that the keyboard Shift key
  3307.       will act correctly (this is a side effect of assuming that you
  3308.       could be at a terminal with no IBM special keys to press).
  3309.  
  3310.       NOTE:  If you have started a VT session and type 'set baud -c1
  3311.       2400', you will be setting the remote computer send baud rate,
  3312.       you will need to press Shift-Tab and switch to a local session
  3313.       to perform the same command for your local computer, so that
  3314.       both sides sync at the new baud rate.
  3315.  
  3316.       To quit VT.EXE press Alt-Z.  This will terminate the VT program,
  3317.       but will not quit the remote session.  You should 'quit' the
  3318.       remote session first (by typing 'quit'), before pressing Alt-Z.
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.       The Utilities                                          page 3-14
  3366.  
  3367.  
  3368.       C O M S O F T                                           VMiX 386
  3369.  
  3370.  
  3371.  
  3372.  
  3373.       NAME: vw.exe
  3374.       ____
  3375.  
  3376.       OUTLINE:
  3377.       _______
  3378.  
  3379.       vw    " VMiX pull-down menus utility"
  3380.  
  3381.         -i  " interactive keyboard mode"
  3382.  
  3383.  
  3384.       DESCRIPTION:
  3385.       ___________
  3386.  
  3387.       VW can be used to start other programs or to set VMiX options.
  3388.       VW is an easy to use multiple thread environment.
  3389.  
  3390.       The menu bar displays five user menus:
  3391.  
  3392.         'Commands' are a simulation of the tokens normally available
  3393.         from the VMiX shell.
  3394.  
  3395.         'Memory' allows you to partition memory and configure memory
  3396.         utilization.
  3397.  
  3398.         'Process' provides new task start-up and process maintenance.
  3399.  
  3400.         'Examine' displays status information and resource utilization
  3401.         information.
  3402.  
  3403.         'Options' is where most configuration choices reside.
  3404.  
  3405.       Move to the desired menu by pressing the right or left arrow
  3406.       keys.  Select a menu by pressing the down arrow key, by pressing
  3407.       ENTER, or by typing the CAPITALIZED letter of the menu name.
  3408.  
  3409.       Select a pull-down menu option by first moving to the desired
  3410.       item with the down or up arrow keys and press ENTER to execute
  3411.       the option.  Pull-down options that display a '->' indicate an
  3412.       additional pull-down menu, reachable by pressing ENTER or the
  3413.       right-arrow key.  To exit from the vw utility or a pull-down
  3414.       menu press the 'Esc' key.
  3415.  
  3416.       When using VW from a remote PC, while running a remote console
  3417.       software product, you must tell VW to run in interactive mode
  3418.       with the command line option: 'VW.EXE -i'.  In this mode, VW
  3419.       will not allow the scheduler to set it to sleep, when there is
  3420.       no input/output activity.
  3421.  
  3422.       VW asks for a video page or video mode when starting a new VMiX
  3423.       shell or MS-DOS shell with FULL screen (use only page 0, when in
  3424.       386 mode).
  3425.  
  3426.       VW will respond to the [Home] key by repainting the menu bar.
  3427.       On non-386 computers, switching to tasks in different video
  3428.       pages or modes will sometimes not restore the VW menu bar on
  3429.       return to VW, so press [Home] to redisplay.
  3430.  
  3431.       The Utilities                                          page 3-15
  3432.  
  3433.  
  3434.       C O M S O F T                                           VMiX 386
  3435.  
  3436.  
  3437.       Windows are usually displayed automatically, when a new process
  3438.       is started.  With VW you can size a custom window from the
  3439.       Options Menu.  The 'Resize window' command will ask for the
  3440.       top-left and bottom-right coordinates, as shown above (Row and
  3441.       Column), for the new window.
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.       The Utilities                                          page 3-16
  3498.